package com.wgy.day21.DateFormat类;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
java.text.DateFormat:对日期和时间进行格式化的抽象类
作用:
格式化(日期--->文本)   解析(文本--->日期)

DateFormat类的成员方法:
String format(Date date):按照指定的模式,将Date日期格式化为符合模式的字符串
Date parse(String source):把符合模式的字符串,解析为Date日期

注意:抽象类不能直接创建对象使用,可以通过创建抽象类的子类对象进行调用(已知子类:SimpleDateFormat)
java.text.SimpleDateFormat extends DateFormat

SimpleDateFormat类的构造方法:
public SimpleDateFormat(String pattern){
//...
}
参数: String pattern:传递指定的模式
模式: 严格区分大小写
     y  年
     M  月
     d  日
     H  时
     m  分
     s  秒
     S  毫秒
     写对应的格式,会把模式替换成对应的日期和时间
     "yyyy-MM-dd  HH:mm:ss"
注意: 模式中的字母是不能更改的,连接模式的符号是可以改变的
     "yyyy年MM月dd日  HH时mm分ss秒"

 */
public class Demo01DateFormat {
    public static void main(String[] args) throws ParseException {
        method1();
        method2();
    }

  //按照指定的模式,将Date日期格式化为符合模式的字符串
    public static void method1() {
        // 1.创建DateFormat的子类 SimpleDateFormat类对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH时mm分ss秒");
        System.out.println(sdf);
        //2.获取系统当前时间的Date格式
        Date date = new Date();
        System.out.println(date);    //Thu Nov 19 10:51:28 CST 2020
        //3.将系统当前时间的Date格式 格式化为指定的文本格式
        String a = sdf.format(date);
        System.out.println(a);       //2020年11月19日  10时51分28秒

    }

    //把符合模式的字符串,解析为Date日期
    public static void method2() throws ParseException {
        // 1.创建DateFormat的子类 SimpleDateFormat类对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH时mm分ss秒");
        System.out.println(sdf); //java.text.SimpleDateFormat@e76d4f1
        //2.将指定时间格式解析为Date格式
        Date date = sdf.parse("2020年11月19日  10时51分28秒");
        System.out.println(date); //  Thu Nov 19 10:51:28 CST 2020
    }

}
